package com.ruoyi.orders.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 停车订单对象 smart_parking_order
 * 
 * @author ruoyi
 * @date 2025-04-01
 */
public class SmartParkingOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 停车订单ID */
    private Long scOrderId;

    /** 停车场id */
    @Excel(name = "停车场id")
    private Long scParkingLotId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String scOrderNumber;

    /** 订单所属用户ID (外键) */
    @Excel(name = "订单所属用户ID (外键)")
    private Long scUserId;

    /** 停车位的车辆ID（外键） */
    @Excel(name = "停车位的车辆ID", readConverterExp = "外=键")
    private Long scCarId;

    /** 停车位ID（外键） */
    @Excel(name = "停车位ID", readConverterExp = "外=键")
    private Long scSpaceId;

    /** 车辆入场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "车辆入场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scEntryTime;

    /** 车辆离场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "车辆离场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scExitTime;

    /** 停车订单的总费用 */
    @Excel(name = "停车订单的总费用")
    private BigDecimal scTotalFee;

    /** 是否支付 1是支付 2是未支付 */
    @Excel(name = "是否支付 1是支付 2是未支付")
    private Long scIsPay;

    /** 优惠券ID（外键） */
    @Excel(name = "优惠券ID", readConverterExp = "外=键")
    private Long scCouponId;

    /** 是否是会员  1表示是 0表示不是 */
    @Excel(name = "是否是会员  1表示是 0表示不是")
    private Long scIsMember;

    /** 实际支付金额 */
    @Excel(name = "实际支付金额")
    private BigDecimal scPayAmount;

    /** 订单完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scCompletionTime;

    public void setScOrderId(Long scOrderId) 
    {
        this.scOrderId = scOrderId;
    }

    public Long getScOrderId() 
    {
        return scOrderId;
    }

    public void setScParkingLotId(Long scParkingLotId) 
    {
        this.scParkingLotId = scParkingLotId;
    }

    public Long getScParkingLotId() 
    {
        return scParkingLotId;
    }

    public void setScOrderNumber(String scOrderNumber) 
    {
        this.scOrderNumber = scOrderNumber;
    }

    public String getScOrderNumber() 
    {
        return scOrderNumber;
    }

    public void setScUserId(Long scUserId) 
    {
        this.scUserId = scUserId;
    }

    public Long getScUserId() 
    {
        return scUserId;
    }

    public void setScCarId(Long scCarId) 
    {
        this.scCarId = scCarId;
    }

    public Long getScCarId() 
    {
        return scCarId;
    }

    public void setScSpaceId(Long scSpaceId) 
    {
        this.scSpaceId = scSpaceId;
    }

    public Long getScSpaceId() 
    {
        return scSpaceId;
    }

    public void setScEntryTime(Date scEntryTime) 
    {
        this.scEntryTime = scEntryTime;
    }

    public Date getScEntryTime() 
    {
        return scEntryTime;
    }

    public void setScExitTime(Date scExitTime) 
    {
        this.scExitTime = scExitTime;
    }

    public Date getScExitTime() 
    {
        return scExitTime;
    }

    public void setScTotalFee(BigDecimal scTotalFee) 
    {
        this.scTotalFee = scTotalFee;
    }

    public BigDecimal getScTotalFee() 
    {
        return scTotalFee;
    }

    public void setScIsPay(Long scIsPay) 
    {
        this.scIsPay = scIsPay;
    }

    public Long getScIsPay() 
    {
        return scIsPay;
    }

    public void setScCouponId(Long scCouponId) 
    {
        this.scCouponId = scCouponId;
    }

    public Long getScCouponId() 
    {
        return scCouponId;
    }

    public void setScIsMember(Long scIsMember) 
    {
        this.scIsMember = scIsMember;
    }

    public Long getScIsMember() 
    {
        return scIsMember;
    }

    public void setScPayAmount(BigDecimal scPayAmount) 
    {
        this.scPayAmount = scPayAmount;
    }

    public BigDecimal getScPayAmount() 
    {
        return scPayAmount;
    }

    public void setScCompletionTime(Date scCompletionTime) 
    {
        this.scCompletionTime = scCompletionTime;
    }

    public Date getScCompletionTime() 
    {
        return scCompletionTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("scOrderId", getScOrderId())
            .append("scParkingLotId", getScParkingLotId())
            .append("scOrderNumber", getScOrderNumber())
            .append("scUserId", getScUserId())
            .append("scCarId", getScCarId())
            .append("scSpaceId", getScSpaceId())
            .append("scEntryTime", getScEntryTime())
            .append("scExitTime", getScExitTime())
            .append("scTotalFee", getScTotalFee())
            .append("scIsPay", getScIsPay())
            .append("scCouponId", getScCouponId())
            .append("scIsMember", getScIsMember())
            .append("scPayAmount", getScPayAmount())
            .append("scCompletionTime", getScCompletionTime())
            .toString();
    }
}
